CI/CD 簡介
CI/CD 可拆成三個連續的步驟
- Continuous Integration 持續整合藉由頻繁的整合,來減輕版本之間差異過大時,會發生的合併困難甚或失敗。在此階段,通常還會加入自動化測試來確保待合併的分支,不會發生功能錯誤。
- Continuous Delivery 持續佈署在確定程式碼的功能性正常後,會自動因應不同的環境進行相對應的程式檔佈署。佈署完成後,可以進行手動測試驗證。
- Continuous Deployment 持續交付在已經有相對應的程式檔後,自然就要落地到機器上來正式運行,給客戶們使用啦,這就是這階段的目的。
GitLab 上的 CI/CD 介紹
圖片來源 https://docs.gitlab.com/ee/ci/introduction/
當程式碼異動的時候可以觸發 Runner
依據 gitlab-ci.yml
的 job 步驟執行
GitLab 提供三種 Runner 的權限
- Shared Runner: 當數個專案的 CI/CD job 都有相同的需求,可以節省為了每一個專案各開一個 Runner ,而導致可能性的閒置。Runner 會根據 Project 正在運行的 job 來挑選接下來要運行的 job ,可避免有某個 Project 過量的 job 導致其他 project 的 job 無法執行,詳細可以參考 fair usage queue
- Group Runners: 該 Group 下的所有 Project 皆有此 Runner 的權限。採用 FIFO 來處理 jobs
- Specific Runner: 當組織中的多個專案 CI/CD job 需求的環境差很多時,需要採用這個來確保環境的隔離。此 Runner 採用 FIFIO 來處理 jobs